import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)
// https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata

export default new Vuex.Store({
  // 中大型项目 vuex
  // 定义全局的状态  (存储到内存中)
  state: {
    num: 8888888,
    count: 6666666,
    list: []
  },
  // 类似于.vue文件中的methods  用来定义修改数据的方法
  // 同步的修改数据
  mutations: {
    // 在 mutations 函数中的第一个参数为state
    addNum(state) {
      state.num += 10
    },
    delNum(state) {
      state.num += 10
    },
    setList(state, action) {
      state.list = action.res
    }
  },
  // 类似于.vue中的computed
  getters: {
    newNum(state) {
      console.log('计算属性')
      return state.num + 'aaaaaaaa'
    }
  },
  // 异步修改属性的方法 (放异步请求)
  actions: {
    init({ commit }) {
      // context 上下文
      axios.get("https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata").then(res => {
        // console.log(res.data.message)
        // 只要是修改state中的数据  必须得通过mutations中定义的方法来修改
        // console.log(context)

        commit("setList", {
          res: res.data.message
        })
      })
    }
  },
  // 区分模块
  // modules: {
  // }
})
